# 文件
# 方法1
# open("../file/1.txt", "w",encoding="utf-8").write("Hello, world!")  # w表示写入模式，写入内容"Hello, world!"到文件中
# w=open("../file/1.txt", "w",encoding="utf-8")
# w.write("Hello, world!")
# w.close()
# r = open("../file/1.txt", "r",encoding="utf-8").read()  # r表示读取模式，读取文件内容并打印
# print(r)
# a=open("../file/1.txt", "a",encoding="utf-8")  # a表示追加模式，在文件末尾追加内容
# a.write("\nPython is awesome!")
# a.close()
# print("文件追加成功！")
# 方法2
"""
这是一个文件操作示例代码，演示了文件的写入、读取和追加操作。
使用with语句可以确保文件在使用后被正确关闭，即使在操作过程中发生异常。
"""
# from project.hm_05_第五天的代码文件 import result
# with open("../file/1.txt", "w", encoding="utf-8") as f:  # 使用with语句自动关闭文件，以写模式打开文件
#     f.write("Hello, world!")  # 向文件中写入字符串"Hello, world!"
#     print("文件写入成功！")  # 打印写入成功的提示信息
# with open("../file/1.txt", "r", encoding="utf-8") as f:  # 使用with语句自动关闭文件，以读模式打开文件
#     r = f.read()  # 读取文件内容
#     print(r)  # 打印读取到的文件内容
# with open("../file/1.txt", "a", encoding="utf-8") as f:  # 使用with语句自动关闭文件，以追加模式打开文件
#     f.write("\nPython is awesome!")  # 向文件末尾追加字符串"\nPython is awesome!"
#     print("文件追加成功！")  # 打印追加成功的提示信息
# print("="*100)

# 按行读取文件
with open("../file/1.txt", "r", encoding="utf-8") as f:
    # result = f.readlines()  # 按行读取文件，并返回一个包含每行内容的列表
    # result = [line.strip() for line in result]  # 去掉每行末尾的换行符
    # print(result)  # 打印每行内容

    # for line in f:
    #     print(line.strip())  # 去掉每行末尾的换行符

    while True:
        result = f.readline()
        # if result=="":
        if not result:
            break
        print(result.strip())  # 去掉每行末尾的换行符
with open("../file/1.txt", "rb") as f:
    result = f.read()  # 读取文件内容
    print(result)  # 打印读取到的文件内容
print("=" * 100)

# json文件操作
import json

# 写入json文件
data = {"name": "小明", "age": 18, "sex": "男"}
# with open("../file/2.json", "w") as f:
#     json.dump(data, f)  # 将字典数据写入json文件
# 读取json文件
with open("../file/2.json", "r", encoding="utf-8") as f:
    # 换行打出
    # while True:
    #     result = f.readline()
    #     if not result:
    #         break
    #     # print(result)  # 将json数据转换为字典
    #     print(result.strip())# 去掉每行末尾的换行符

    # 直接读取
    result = json.load(f)  # 将json数据转换为字典
    print(type(result))
    print(result)  # 打印字典数据
    print(result["名字"])  # 或者result.get("名字")
    print(result["标签"][0])
print("=" * 100)

with open("../file/3.json", encoding="utf-8") as f:
    # data = json.load(f)  # 读取json文件
    # for item in data:
    #     print(f"{item['name']}的年龄是{item['age']}，性别是{item['gender']},住址是{item['citys']}")
    while True:
        result = f.readline()
        if not result:
            break
        print(result.strip())  # 去掉每行末尾的换行符
print("=" * 100)

# 写入
data = {"name": "小明", "age": 18, "sex": "男"}
with open("../file/4.json", "w", encoding="utf-8") as f:
    json.dump(data, f, ensure_ascii=False, indent=4)  # 写入json文件，ensure_ascii=False表示不对中文进行编码，indent=4表示缩进格式
    print("写入成功！")

# 异常
# try:
#     num=int(input("请输入一个数字："))
#     print("您输入的是：",num)
#     print(10/num)
# # except ValueError:
# #     print("输入的不是数字！")
# # except ZeroDivisionError:
# #     print("不能除以0！")
# except Exception as e:# 捕获所有异常
#     print("发生了错误：",e)
# else:# 无异常发生时执行else语句块
#     print("没有发生异常！")
# finally:# 无论是否有异常，都会执行finally语句块
#     print("程序执行结束！")

# try:
#     num=input("请输入一个数字：")
#     nums=int(num)
# except Exception as e:
#     print("输入的不是数字！",e)
# else:
#     if nums%2==0:
#         print(nums,"是偶数！")
#     else:
#         print(nums,"是奇数！")
# finally:
#     print("程序执行结束！")
# print("="*100)
#
# num=input("请输入一个数字：")
# if num.isdigit():
#     nums=int(num)
#     if nums%2==0:
#         print(nums,"是偶数！")
#     else:
#         print(nums,"是奇数！")
# else:
#     print("输入的不是数字！")
# print("程序执行结束！")
# print("="*100)
